package com.mrx.commons.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * AOP 请求限流注解
 *
 * @author Mr.X
 * @since 2023-02-12 19:32
 */

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface XRateLimit {

    /**
     * 间隔时间, 单位为 秒
     */
    int value() default 60;

    /**
     * 用做限流的第二条件, 这个值是 被注解方法的第 name 个参数<br/>
     * 默认为 -1, 如果为 -1, 那么限流条件就是 ip, 否则, 限流条件为 ip:args[name]
     */
    int name() default -1;

}
